<!--$Id: dbt_bulk.so,v 10.14 2007/01/31 14:45:22 bostic Exp $-->
<!--Copyright (c) 1997,2008 Oracle.  All rights reserved.-->
<!--See the file LICENSE for redistribution information.-->
<html>
<head>
<title>Berkeley DB: DBT</title>
<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
<meta name="keywords" content="embedded,database,programmatic,toolkit,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,Java,C,C++">
</head>
<body bgcolor=white>
<table width="100%"><tr valign=top>
<td>
<b>DBT: Bulk Retrieval</b>
</td>
<td align=right>
<a href="../api_c/api_core.html"><img src="../images/api.gif" alt="API"></a>
<a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a></td>
</tr></table>
<hr size=1 noshade>
<tt>
<a name="2"><!--meow--></a>
<p>If either of the <a href="../api_c/dbc_get.html#DB_MULTIPLE">DB_MULTIPLE</a> or <a href="../api_c/dbc_get.html#DB_MULTIPLE_KEY">DB_MULTIPLE_KEY</a> flags
were specified to the <a href="../api_c/db_get.html">DB-&gt;get</a> or <a href="../api_c/dbc_get.html">DBcursor-&gt;get</a> methods, the data
<a href="../api_c/dbt_class.html">DBT</a> returned by those interfaces will refer to a buffer that is
filled with data.  Access to that data is through the following
macros:</p>
<br>
<b><a name="DB_MULTIPLE_INIT">DB_MULTIPLE_INIT</a></b><ul compact><li><pre>DB_MULTIPLE_INIT(void *pointer, <a href="../api_c/dbt_class.html">DBT</a> *data);</pre>
<p>Initialize the retrieval.  The <b>pointer</b> parameter is a variable
to be initialized.  The <b>data</b> parameter is a <a href="../api_c/dbt_class.html">DBT</a>
structure returned from a successful call to <a href="../api_c/db_get.html">DB-&gt;get</a> or
<a href="../api_c/dbc_get.html">DBcursor-&gt;get</a> for which one of the <a href="../api_c/dbc_get.html#DB_MULTIPLE">DB_MULTIPLE</a> or
<a href="../api_c/dbc_get.html#DB_MULTIPLE_KEY">DB_MULTIPLE_KEY</a> flags was specified.</p></ul>
<b><a name="DB_MULTIPLE_NEXT">DB_MULTIPLE_NEXT</a></b><ul compact><li><pre>DB_MULTIPLE_NEXT(void *pointer, <a href="../api_c/dbt_class.html">DBT</a> *data, void *retdata, size_t retdlen);</pre>
<p>The <b>data</b> parameter is a <a href="../api_c/dbt_class.html">DBT</a> structure returned from a
successful call to <a href="../api_c/db_get.html">DB-&gt;get</a> or <a href="../api_c/dbc_get.html">DBcursor-&gt;get</a> for which the
<a href="../api_c/dbc_get.html#DB_MULTIPLE">DB_MULTIPLE</a> flag was specified.  The <b>pointer</b> and
<b>data</b> parameters must have been previously initialized by a call
to DB_MULTIPLE_INIT.  The <b>retdata</b> parameter is set to
refer to the next data element in the returned set, and the
<b>retdlen</b> parameter is set to the length, in bytes, of that data
element.  When used with the Queue and Recno access methods,
<b>retdata</b> will be set to NULL for deleted records.  The
<b>pointer</b> parameter is set to NULL if there are no more data
elements in the returned set.</p></ul>
<b><a name="DB_MULTIPLE_KEY_NEXT">DB_MULTIPLE_KEY_NEXT</a></b><ul compact><li><pre>DB_MULTIPLE_KEY_NEXT(void *pointer, <a href="../api_c/dbt_class.html">DBT</a> *data,
	void *retkey, size_t retklen, void *retdata, size_t retdlen);</pre>
<p>The <b>data</b> parameter is a <a href="../api_c/dbt_class.html">DBT</a> structure returned from a
successful call to <a href="../api_c/dbc_get.html">DBcursor-&gt;get</a> with the Btree or Hash access methods
for which the <a href="../api_c/dbc_get.html#DB_MULTIPLE_KEY">DB_MULTIPLE_KEY</a> flag was specified.  The
<b>pointer</b> and <b>data</b> parameters must have been previously
initialized by a call to DB_MULTIPLE_INIT.  The <b>retkey</b>
parameter is set to refer to the next key element in the returned set,
and the <b>retklen</b> parameter is set to the length, in bytes, of
that key element.  The <b>retdata</b> parameter is set to refer to the
next data element in the returned set, and the <b>retdlen</b> parameter
is set to the length, in bytes, of that data element.  The
<b>pointer</b> parameter is set to NULL if there are no more key/data
pairs in the returned set.</p></ul>
<b><a name="DB_MULTIPLE_RECNO_NEXT">DB_MULTIPLE_RECNO_NEXT</a></b><ul compact><li><pre>DB_MULTIPLE_RECNO_NEXT(void *pointer, <a href="../api_c/dbt_class.html">DBT</a> *data,
	db_recno_t recno, void * retdata, size_t retdlen);</pre>
<p>The <b>data</b> parameter is a <a href="../api_c/dbt_class.html">DBT</a> structure returned from a
successful call to <a href="../api_c/dbc_get.html">DBcursor-&gt;get</a> with the Queue or Recno access
methods for which the <a href="../api_c/dbc_get.html#DB_MULTIPLE_KEY">DB_MULTIPLE_KEY</a> flag was specified.  The
<b>pointer</b> and <b>data</b> parameters must have been previously
initialized by a call to DB_MULTIPLE_INIT.  The <b>recno</b>
parameter is set to the record number of the next record in the returned
set.  The <b>retdata</b> parameter is set to refer to the next data
element in the returned set, and the <b>retdlen</b> parameter is set to
the length, in bytes, of that data element.  Deleted records are not
included in the results.  The <b>pointer</b> parameter is set to NULL
if there are no more key/data pairs in the returned set.</p></ul>
<br>
<p>These macros may be called multiple times, but DB_MULTIPLE_INIT
must be called before each new access of the data.</p>
</tt>
<table width="100%"><tr><td><br></td><td align=right>
<a href="../api_c/api_core.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
</td></tr></table>
<p><font size=1>Copyright (c) 1996,2008 Oracle.  All rights reserved.</font>
</body>
</html>
